package com.dimples.dd.system.model.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Schema(description = "访问令牌 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2AccessTokenPageVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private String id;

    @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "aa")
    private String accessToken;

    @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "aa")
    private String refreshToken;

    @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
    private String username;

    @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1801406924788948992")
    private String clientId;

    @Schema(description = "授权类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "password")
    private String authorizationGrantType;

    @Schema(description = "令牌发布时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime accessTokenIssuedAt;

    @Schema(description = "令牌过期时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime accessTokenExpiresAt;

}
